/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dispositivos;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Adrian y Sergio
 */
public abstract class Dispositivo {
    /**
     * Creamos un metodo en una interfaz ya que 
     * lo vamos a implementar en otras dos clases
     * @param ruta
     * @return
     */
    
    private InputStream is;
    
    private String codificacion;
    
    private String ruta;
    
    public Dispositivo(String ruta)
    {
        this.ruta = ruta;
    }
    
    
    /**
     * Esta funcion devuelve un String, 
     * este resultado es el conjunto de todos los datos leidos
     * por el buffer, termina cuando ya no hay nada en el buffer
     * @return
     */
    public String leer() {
        
        String resultado ="";
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(is, getCodificacion()));
            
            String line;
            
            while((line = br.readLine()) != null) resultado += line + "\n"; //lee linea a linea y termina cuando sea null.
            
        } catch (IOException ex) {
            Logger.getLogger(Dispositivo.class.getName()).log(Level.SEVERE, null, ex);//lo pone automaticamente.
        }
        return resultado;
    }

    /**
     * @return the codificacion
     */
    public String getCodificacion() {
        return codificacion;
    }

    /**
     * @param codificacion the codificacion to set
     */
    public void setCodificacion(String codificacion) {
        this.codificacion = codificacion;
    }

    /**
     * @return the is
     */
    public InputStream getIs() {
        return is;
    }

    /**
     * @param is the is to set
     */
    public void setIs(InputStream is) {
        this.is = is;
    }

    /**
     * @return the ruta
     */
    public String getRuta() {
        return ruta;
    }

    /**
     * @param ruta the ruta to set
     */
    public void setRuta(String ruta) {
        this.ruta = ruta;
    }
   
}
